package com.atzly.community.entity;

/**  页面展示
 * @author zlysimida
 * @date 2021/8/25 - 12:32
 */
public class Page {

    // 当前页
    private int current = 1;
    // 当前页面总个数
    private int limit = 10;
    // 数据库中全部个数
    private Integer total;
    // 当前页面的路径
    private String path;

    public int getCurrent() {
        return current;
    }

    public void setCurrent(int current) {
        if(current >= 1){
            this.current = current;
        }
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        if(limit >= 1 && limit <= 100){
            this.limit = limit;
        }
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        if(total >= 1){
            this.total = total;
        }
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 获得当前页的第一条数据位置
     * @return
     */
    public int getOffset(){
        return (current -1) * limit;
    }

    /**
     * 获取总页数
     * @return
     */
    public int getPageNums(){
        if(total % limit == 0){
            return total / limit;
        }else{
            return total / limit + 1;
        }
    }

    /**
     *当前页面一共显示5个下标
     *  当前页的前面只能显示两页
     * @return
     */
    public int getFrom(){
        int start = current - 2;
        return Math.max(start, 1);
    }


    /**
     *  当前页面一共显示5个下标
     *  当前页面的后面只能显示两页
     * @return
     */
    public int getTo(){
        int end = current + 2;
        int total = getPageNums();
        return Math.min(end, total);
    }

}
